//#define _CRT_SECURE_NO_WARNINGS 1
//#include<iostream>
//#include<algorithm>
//#include<vector>
//using namespace std;
//const int N = 25;
//int dx[4] = { 0,-1,0,1 };
//int dy[4] = { -1,0,1,0 };
//int a[N];
//int b[N];
//int n;
//int row;
//int col;
//bool st[N][N];
//
//vector<int> ans;
//
//void dfs(int x, int y,vector<int> res) {
//	if (x == n - 1 && y == n - 1 && row == 0 && col == 0) {
//		ans = res;
//		return;
//	}
//	st[x][y] = true;
//
//	for (int i = 0; i < 4; i++) {
//		int xx = x + dx[i];
//		int yy = y + dy[i];
//
//		if (xx >= 0 && xx < n && yy >= 0 && yy < n && !st[xx][yy] && b[xx] >= 1 && a[yy] >= 1) {
//			st[xx][yy] = true;
//			b[xx]--;
//			a[yy]--;
//			col--;
//			row--;
//			res.push_back(xx * n + yy);
//			dfs(xx, yy,res);
//			st[xx][yy] = false;
//			b[xx]++;
//			a[yy]++;
//			col++;
//			row++;
//			res.pop_back();
//		}
//	}
//}
//
//
//int main() {
//	
//	cin >> n;
//	for (int i = 0; i < n; i++) {
//		cin >> a[i];
//		col += a[i];
//	}
//
//	for (int i = 0; i < n; i++) {
//		cin >> b[i];
//		row += b[i];
//	}
//	vector<int> res;
//	res.push_back(0);
//	a[0]--;
//	b[0]--;
//	col--;
//	row--;
//	dfs(0, 0,res);
//	
//	for (auto &it : ans) {
//		cout << it << " ";
//	}
//
//	return 0;
//}